package resolution;

import java.util.ArrayList;

import Objet.Boite;
import Objet.ListeObjets;
import Objet.Objet;
import Probleme.Instance;
import Probleme.Solution;

public class ResolutionFirstFit {
	
	Solution s;
	
	public ResolutionFirstFit(Instance instance) {
		
		this.s = new Solution();
		ListeObjets objets = new ListeObjets();
		objets.append(instance.getObjets());
		
		ArrayList<Boite> lesBoites = new ArrayList<Boite>();
		
		for (Objet o : objets.getLst()) {
			while (!o.place) {
				int i = 0;
				while ((i < lesBoites.size()) && !o.place) {
					Boite b = lesBoites.get(i);
					if (b.getPlaceReste() >= o.getPoids()) {
						b.placer(o);
						o.setPlace(true);
					}
					i++;
				}
				
				if (!o.place) {
					lesBoites.add(new Boite(lesBoites.size() + 1, instance.getPoidsMax()));
				}
			}
		}
		this.s.setLesBoites(lesBoites);
		
	}
	
	public Solution getS() {
		return this.s;
	}
	
}
